package com.lx.spring.anno;

import java.lang.annotation.*;

@Anno(value = "123", age=123, likes = "吃饭")
public class AnnoDemo {
    @Anno(value = "456", likes = {"唱歌", "跳舞"})
    public int a;

    public static void main(String[] args) throws NoSuchFieldException {
        Class<AnnoDemo> aClass = AnnoDemo.class;
        Anno anno = aClass.getAnnotation(Anno.class);
        System.out.println(anno);
        System.out.println("anno.value() = " + anno.value());
        System.out.println("anno.age() = " + anno.age());
        System.out.println("aClass.getField(\"a\").getAnnotation() = " + aClass.getField("a").getAnnotation(Anno.class));

        Class<AnnoDemoSub> annoDemoSubClass = AnnoDemoSub.class;
        Anno annoSub = annoDemoSubClass.getAnnotation(Anno.class);
        System.out.println("annoSub = " + annoSub);
    }
}

class AnnoDemoSub extends AnnoDemo {

}


@Target({ElementType.TYPE, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@interface Anno{
    String value();
    int age() default  20;
    String[] likes();
}
